const int N=1e5+10, M=N<<1;

// 对于每个点k，开一个单链表，存储k所有可以走到的点。h[k]存储这个单链表的头结点
int h[N], w[M], e[M], ne[M], idx;

// 添加一条边a->b
void AddEdge(int a, int b, int c)
{
    e[idx]=b, w[idx]=c, ne[idx]=h[a], h[a]=idx++; 
}

// 初始化
void init()
{
    idx=0;
    memset(h, -1, sizeof h);
}   
